<script>
export default {
	onLaunch: function () {
		console.log('App Launch')
		/*当程序启动时检查本地是否含有token,且token未过期
		*如果有则自动登录,并刷新token
		*如果没有则跳转到登录页面
		*/
		this.refreshToken()
		this.receiveMsg()//接收消息
	},
	onShow: function () {
		console.log('App Show')
	},
	onHide: function () {

	},

	methods: {
		//接收到消息
		receiveMsg() {
			this.$socket.on('privateChat', data => {
				console.log('Received')
				//判断消息是哪一个用户发送的，并将消息存储到对应的用户的消息列表中
				this.$store.dispatch('addUserMsg', data)
			})
		},
		refreshToken() {
			// 在vuex中重新生成token
			this.$store.dispatch('refreshToken').then(res => {
				if (res === 'success') {
					this.$tools.toast('登录成功');
					this.$socket.connect()//连接socket
					this.$socket.emit('login', this.$store.state.user.userInfo)
					// 延迟一秒让页面加载完毕后跳转
					setTimeout(() => {
						this.$Router.replaceAll({
							name: 'home',//跳转到首页，关闭所有页面

						})
					}, 1000)
				} else {
					// 延迟一秒让页面加载完毕后跳转
					// token过期或者没有token均跳转到登录页面
					setTimeout(() => {
						this.$Router.replaceAll({
							name: 'login'
						})
					}, 1000)
				}
			})
		}
	}
}
</script>

<style lang="scss">
@import "@/style/animate.css";
@import "@/static/iconfont/iconfont.css";
@import "uview-ui/index.scss";


/*每个页面公共css */
body,
html {
	font-size: 16px;
	background: $uni-box-bg-color;
}
</style>
